home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 2000 November: Tool Chest / Dev.CD Nov 00 TC Disk 1.toast / Sample Code / Contributed / SpriteWorld / SpriteWorld Examples / SpriteTest / SpriteTest.h < prev    next >
Encoding:
Text File  |  2000-10-06  |  3.7 KB  |  197 lines  |  [TEXT/CWIE]

  1. ///--------------------------------------------------------------------------------------
  2. // SpriteTest.h
  3. ///--------------------------------------------------------------------------------------
  4.  
  5.  
  6. #ifndef __SPRITETEST__
  7. #define __SPRITETEST__
  8.  
  9. #ifndef __MENUS__
  10. #include <Menus.h>
  11. #endif
  12.  
  13.  
  14. enum
  15. {
  16.     kBaseResID = 128,
  17.     kGlobeHeight = 48,
  18.     kGlobeBorderWidth = 1,
  19.     kNumberOfGlobeSprites = 10,
  20.     kNumberOfGlobeFrames = 30,
  21.     kGlobeSpriteMoveTime = 0,
  22.     kGlobeSpriteFrameTime = 20,
  23.     kTwoHeight = 50,
  24.     kTwoBorderWidth = 1,
  25.     kNumberOfTwoFrames = 10,
  26.     kBackDropPixPatID = 128,
  27.     kPerformanceAlertID = 200,
  28.     kSetUpTestResID = 400,
  29.     kCollisionProcResID = 401,
  30.     kTestTime = (30 * 60)        // 30 seconds per test
  31. };
  32.  
  33. typedef enum
  34.     kCopyBitsProc    = 0, 
  35.     kBlitPixieProc    = 1, 
  36.  
  37.     kRLEProc        = 2,     // <-- sprite procs
  38.     kCompiledProc    = 3
  39. }ProcType;
  40.  
  41. typedef enum
  42.     kRectCollisionProc        = 0, 
  43.     kRadiusCollisionProc    = 1, 
  44.     kPixelCollisionProc        = 2,
  45.     kRegionCollisionProc    = 3,
  46.     kRLECollisionProc        = 4
  47. }CollType;
  48.  
  49. enum
  50. {
  51.     kCopyBitsSpriteButton = 4,
  52.     kBlitPixieSpriteButton,
  53.     kRLESpriteButton,
  54.     kCompiledSpriteButton,
  55.     kCopyBitsOffscreenButton = 9,
  56.     kBlitPixieOffscreenButton,
  57.     kCopyBitsScreenButton = 12,
  58.     kBlitPixieScreenButton,
  59.     kRunTestNowCheckBox,
  60.     kInterlacedCheckBox,
  61.     kSkipOddLinesRadioButton,
  62.     kSkipEvenLinesRadioButton,
  63.     kClearBackgroundCheckBox,
  64.     kSetClearColorButton,
  65.     kColorSpritesCheckBox,
  66.     kSetSpriteColorButton
  67. };
  68.  
  69. enum
  70. {
  71.     kCollisionDetectionCheckbox = 3,
  72.  
  73.     kRectCollisionButton        = 4, 
  74.     kRadiusCollisionButton        = 5, 
  75.     kPixelCollisionButton        = 6,
  76.     kRegionCollisionButton        = 7,
  77.     kRLECollisionButton            = 8
  78.  
  79. };
  80.  
  81. typedef struct SpriteTestRec SpriteTestRec;
  82. typedef SpriteTestRec *SpriteTestPtr, **SpriteTestHdl;
  83.  
  84.  
  85. struct SpriteTestRec
  86. {
  87.     SpriteWorldPtr spriteWorldP;
  88.     SpriteLayerPtr globeSpriteLayerP;
  89.     SpritePtr globeSpriteArray[kNumberOfGlobeSprites];
  90.     SpritePtr titleSpriteP;
  91.     SpritePtr twoSpriteP;
  92. };
  93.         
  94.  
  95. OSErr SetupSWStuff(
  96.     SpriteTestPtr* spriteTestP,
  97.     CWindowPtr srcWindowP);
  98.  
  99. void DisposeSWStuff(
  100.     SpriteTestPtr spriteTestP);
  101.  
  102. void SetupSpriteWorldElements(
  103.     SpriteTestPtr spriteTestP);
  104.  
  105. void SetDefaultTestDrawProcs( short depth );
  106.  
  107. void SetupGlobeSprite(
  108.     SpritePtr testSpriteP,
  109.     Rect *moveBoundsRect,
  110.     short horizLocation,
  111.     short vertLocation);
  112.  
  113. void SpriteTestIdle(
  114.     SpriteTestPtr spriteTestP);
  115.  
  116. void UpdateSpriteTest(
  117.     SpriteTestPtr spriteTestP,
  118.     WindowPtr updateWindowP);
  119.  
  120. void HandleCreateSpriteCommand(
  121.     SpriteTestPtr spriteTestP);
  122.  
  123. void HandleSpriteTestTitleCommand(
  124.     SpriteTestPtr spriteTestP);
  125.  
  126. void HandleBouncingBallsCommand(
  127.     SpriteTestPtr spriteTestP);
  128.  
  129. void RemoveClickedSprite(
  130.     SpriteTestPtr spriteTestP);
  131.  
  132. void SetUpTestDialog(
  133.     SpriteTestPtr spriteTestP);
  134.  
  135. void SetSetUpTestButtons(
  136.     DialogPtr theDialog);
  137.  
  138. void CollisionProcDialog(
  139.     SpriteTestPtr spriteTestP);
  140.  
  141. void SetCollisionProcButtons(
  142.     DialogPtr theDialog );
  143.  
  144. void RunAllTests(
  145.     SpriteTestPtr spriteTestP);
  146.     
  147. void RunTheTest(
  148.     SpriteTestPtr spriteTestP);
  149.     
  150. void RestoreFromTest(
  151.     WindowPtr testWindowP,
  152.     SpriteTestPtr spriteTestP);
  153.     
  154. void DisplayPerformance(
  155.     long frames,
  156.     float seconds);
  157.     
  158. SW_FUNC void GlobeSpriteMoveProc(SpritePtr globeSpriteP);
  159.  
  160. SW_FUNC void RectBounceCollideProc(
  161.     SpritePtr srcSpriteP,
  162.     SpritePtr dstSpriteP,
  163.     Rect* sectRect);
  164.  
  165. SW_FUNC void RLEBounceCollideProc(
  166.     SpritePtr srcSpriteP,
  167.     SpritePtr dstSpriteP,
  168.     Rect* sectRect);
  169.  
  170. SW_FUNC void PixelBounceCollideProc(
  171.     SpritePtr srcSpriteP,
  172.     SpritePtr dstSpriteP,
  173.     Rect* sectRect);
  174.     
  175. SW_FUNC void RegionBounceCollideProc(
  176.     SpritePtr srcSpriteP,
  177.     SpritePtr dstSpriteP,
  178.     Rect* sectRect);
  179.  
  180. SW_FUNC void RadiusBounceCollideProc(
  181.     SpritePtr srcSpriteP,
  182.     SpritePtr dstSpriteP,
  183.     Rect* sectRect);
  184.  
  185. void BounceGlobeOffGlobe(
  186.     SpritePtr srcSpriteP,
  187.     SpritePtr dstSpriteP);
  188.  
  189. void BounceGlobeOffTitle(
  190.     SpritePtr titleSpriteP,
  191.     SpritePtr globeSpriteP,
  192.     Rect* sectRect);
  193.     
  194.  
  195. #endif    /* __SPRITETEST__ */